﻿//-----------------------------------------------------------------------
// <copyright>
// This file is subject to the terms and conditions of the Microsoft Public License (MS-PL).
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL for more details.
// </copyright>
//----------------------------------------------------------------------- 
using System;

namespace Fulcrum.UnitTests.DispatcherProxies
{
    public class MyOtherDispatcherClass : MyDispatcherClass
    {
        public MyOtherDispatcherClass()
        {
            // nothing
        }

        public MyOtherDispatcherClass(int value)
        {
            throw new NotImplementedException();
        }

        public void Method()
        {
            throw new NotImplementedException();
        }

        public virtual void Method(int value)
        {
            throw new NotImplementedException();
        }

        public override long Method(int value, string anotherValue)
        {
            throw new NotImplementedException();
        }

        public event EventHandler RegularEvent;

        public virtual event EventHandler VirtualEvent;

        public override event EventHandler OverrideEvent;

        private void OnRegularEvent()
        {
            this.RegularEvent(this, EventArgs.Empty);
        }

        private void OnVirtualEvent()
        {
            this.VirtualEvent(this, EventArgs.Empty);
        }

        private void OnOverrideEvent()
        {
            this.OverrideEvent(this, EventArgs.Empty);
        }

        public int ReadProperty
        {
            get
            {
                throw new NotImplementedException();
            }
        }

        public int ReadWriteProperty
        {
            get;
            set;
        }

        public int PublicReadWriteProperty
        {
            get;
            private set;
        }

        public virtual int VirtualReadProperty
        {
            get
            {
                throw new NotImplementedException();
            }
        }

        public override int OverrideReadProperty
        {
            get
            {
                throw new NotImplementedException();
            }
        }

    }
}
